// components/xbutton/index.js
Component({
  /**
   * 组件的属性列表  在此处定义组件都有什么自定义属性
   */
  properties: {
    title: {  // 定义属性：title属性 <x-button title="">
      type: String,
      value: '按钮默认文本'
    },
    color: {
      type: String,
      value: '#1989fa'
    },
    round: {
      type: Boolean,
      value: false
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    t: 0,    // 保存上一次被单击时的时间戳
  },

  /** 组件的方法列表 */
  methods: {
    // 当单击组件时触发，执行该方法 
    // 需要在该方法中判断，是否达到了抛出双击事件的条件
    tapView(){   
      let now = Date.now()   // 当前时间戳
      let t = this.data.t    // 上一次被点击时的时间戳
      if(now-t < 350){  // 达到了触发双击的标准
        // 主动通知父组件，事件被触发了，事件类型:doubletap
        // 父组件就可以通过: <x-button  bind:doubletap="">捕获抛出的这个自定义事件
        // this.$emit('doubletap')  vue中
        this.triggerEvent('doubletap')
        now = 0 // 初始化当前时间  防止出现连续点击bug
      }
      this.data.t = now
    }
  }
})
